Electronic systems and circuits have made a significant contribution towards the advancement of modern society and are utilized in a number of applications to achieve advantageous results. Numerous electronic technologies such as digital computers, calculators, audio devices, video equipment, and telephone systems have facilitated increased productivity and reduced costs in analyzing and communicating data, ideas and trends in most areas of business, science, education and entertainment. Frequently, electronic systems designed to provide these advantageous results are realized through the use of networked resources that facilitate leveraged utilization of centralized resources. While the leveraged utilization of the centralized resources is advantageous, organization and assignment of the centralized resources is usually very complex and susceptible to wasteful implementations.
Centralizing certain resources within a distributed network typically provides desirable benefits. For example, centrally storing and/or processing information typically relieves the necessity of wasteful duplicative storage and/or processing resources at each remote networked node. However, managing large storage and processing capabilities of centralized resources is very complex and expensive. The current increase in demand for Applications Service Providers (ASPs) to provide additional services is largely attributable to the ever growing cost of information technology and the increasing complexity of managing mission critical Enterprise and Internet applications. To provide the typical requisite level of service, an ASP usually needs a highly available, scaleable, flexible and secure centralized infrastructure. An Internet Data Center (IDC) is one example of an attempt to provide such an infrastructure to an ASP or web site hoster for planning, deploying and managing complex applications.
Managing both the infrastructure and the application in a large and complicated centralized networked resource environment raises many challenging operational scalability issues. For example, it is desirable to share data center resources among different customers and applications to reduce operating costs. However, customers prefer dedicated resources that offer isolation and security for their applications as well as flexibility to host different types of applications. Attempting to assign or allocate resources in a centralized environment in an efficient manner which adequately addresses issues that are impacted by the assignment is very difficult.
The manner in which centralized resources are assigned and allocated is very important and the present common methods of manual assignment are typically inefficient and/or defective. The resources are often randomly assigned and do not adequately address customers needs for deployment in a timely fashion that facilitates reduced time-to-market availability of the applications. In addition, the dynamic nature and high variability of the workload in many applications, especially electronic business (e-business) applications requires that the resources allocated to an application be easily adjustable to maintain service level agreements (SLAs). Moreover, because multiple customers typically co-exist in a data center, it is important to allocate resources intelligently to avoid bottlenecks within the data center.
Resource assignment is also often necessary when incremental application adjustments are made. The latter is often referred to as “capacity on demand”, which means resources (such as servers) are required to be added or removed from an application based on real-time workload and performance measurements. Some prior attempts at resource allocation depend upon abstractions of servers and/or services. These prior attempts require modeling that is susceptible to critical system and application specific information getting lost in an abstraction.
What is required is a system and method for facilitating efficient assignment of networked resources.